<?php
/**
 * Utilsy dla promocji
 * @author Anna Rybka
 *
 */
class PromotionUtils {
	/**
	 * Metoda dodaje promocje do bazy
	 
	 */
	public static function add(Promotion &$promotion) {
		$pid = Manager::getInstance ()->execute ( new PromotionAddCommand ( $promotion ) );
		if(VariableUtils::isNumber($pid)){
			$promotion->setId($pid);
		}
		return $promotion;
	}
	
	/**
	 * Metoda usuwa promocje z bazy o podanym id
	 */
	public static function remove(Promotion $promotion) {
		return PromotionUtils::removeById ( $promotion->getId () );
	}
	/**
	 * Metoda usuwa promocje z bazy o podanym id
	 * @param $promotionId id zgłoszenia
	 * @return flaga czy udało się usunąć
	 */
	public static function removeById($promotionId) {
		return Manager::getInstance ()->execute ( new PromotionDeleteCommand ( $promotionId ) );
	}
	

	/**
	 * Metoda modyfikuj� promocje o tym samym identyfikatorze
	 */
	public static function modify(Promotion $promotion) {
		return Manager::getInstance ()->execute ( new PromotionModifyCommand ( $promotion ) );
	}
	
	/**
	 * Metodoa odszukuje promocje spełniające dane kryteria
	 */
	public static function find(PromotionSearchControls $controls) {
		return Manager::getInstance ()->execute ( new PromotionFindCommand ( $controls ) );
	}
	/**
	 * Metoda pobiera promocję z danym identyfikatorem
	 */
	
	public static function get($id) {
		return Manager::getInstance()->execute (new PromotionGetCommand ($id) );
	}
}

?>